home *** CD-ROM | disk | FTP | other *** search
- /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
- /* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is mozilla.org code.
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications Corporation.
- * Portions created by the Initial Developer are Copyright (C) 1998
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
- /**
- * nsIPluginManager
- *
- * @status DEPRECATED
- *
- * Originally published XPCOM Plugin API is now deprecated
- * Developers are welcome to use NPAPI, please refer to:
- * http://mozilla.org/projects/plugins/
- */
-
- #include "nsISupports.idl"
- #include "nspluginroot.idl"
-
- %{C++
- #include "nsplugindefs.h"
- %}
-
- // CLSID for the browser's global plugin manager object.
- %{C++
- #define NS_PLUGINMANAGER_CID \
- { /* ce768990-5a4e-11d2-8164-006008119d7a */ \
- 0xce768990, \
- 0x5a4e, \
- 0x11d2, \
- {0x81, 0x64, 0x00, 0x60, 0x08, 0x11, 0x9d, 0x7a} \
- }
- %}
-
- interface nsIPluginStreamListener;
-
- [scriptable, uuid(da58ad80-4eb6-11d2-8164-006008119d7a)]
-
- /*
- * The nsIPluginManager interface defines the minimum set of functionality that
- * the browser will support if it allows plugins. Plugins can call QueryInterface
- * to determine if a plugin manager implements more specific APIs or other
- * browser interfaces for the plugin to use (e.g. nsINetworkManager).
- */
-
- interface nsIPluginManager : nsISupports
- {
- /**
- * Returns the value of a variable associated with the plugin manager.
- *
- * (Corresponds to NPN_GetValue.)
- *
- * @param variable - the plugin manager variable to get
- * @param value - the address of where to store the resulting value
- * @result - NS_OK if this operation was successful
- */
- [noscript] void GetValue(in nsPluginManagerVariable variable, in nativeVoid value);
-
- /**
- * Causes the plugins directory to be searched again for new plugin
- * libraries.
- *
- * (Corresponds to NPN_ReloadPlugins.)
- *
- * @param reloadPages - indicates whether currently visible pages should
- * also be reloaded
- */
- void reloadPlugins(in boolean reloadPages);
-
- /**
- * Returns the user agent string for the browser.
- *
- * (Corresponds to NPN_UserAgent.)
- *
- * @param resultingAgentString - the resulting user agent string
- */
- [noscript] void UserAgent(in nativeChar resultingAgentString);
-
- /**
- * Fetches a URL.
- *
- * (Corresponds to NPN_GetURL and NPN_GetURLNotify.)
- *
- * @param pluginInst - the plugin making the request. If NULL, the URL
- * is fetched in the background.
- * @param url - the URL to fetch
- * @param target - the target window into which to load the URL, or NULL if
- * the data should be returned to the plugin via streamListener.
- * @param streamListener - a stream listener to be used to return data to
- * the plugin. May be NULL if target is not NULL.
- * @param altHost - an IP-address string that will be used instead of the
- * host specified in the URL. This is used to prevent DNS-spoofing
- * attacks. Can be defaulted to NULL meaning use the host in the URL.
- * @param referrer - the referring URL (may be NULL)
- * @param forceJSEnabled - forces JavaScript to be enabled for 'javascript:'
- * URLs, even if the user currently has JavaScript disabled (usually
- * specify PR_FALSE)
- * @result - NS_OK if this operation was successful
- */
- %{C++
- NS_IMETHOD
- GetURL(nsISupports* pluginInst,
- const char* url,
- const char* target = NULL,
- nsIPluginStreamListener* streamListener = NULL,
- const char* altHost = NULL,
- const char* referrer = NULL,
- PRBool forceJSEnabled = PR_FALSE) = 0;
- %}
-
- /**
- * Posts to a URL with post data and/or post headers.
- *
- * (Corresponds to NPN_PostURL and NPN_PostURLNotify.)
- *
- * @param pluginInst - the plugin making the request. If NULL, the URL
- * is fetched in the background.
- * @param url - the URL to fetch
- * @param postDataLength - the length of postData (if non-NULL)
- * @param postData - the data to POST. NULL specifies that there is not post
- * data
- * @param isFile - whether the postData specifies the name of a file to
- * post instead of data. The file will be deleted afterwards.
- * @param target - the target window into which to load the URL, or NULL if
- * the data should be returned to the plugin via streamListener.
- * @param streamListener - a stream listener to be used to return data to
- * the plugin. May be NULL if target is not NULL.
- * @param altHost - an IP-address string that will be used instead of the
- * host specified in the URL. This is used to prevent DNS-spoofing
- * attacks. Can be defaulted to NULL meaning use the host in the URL.
- * @param referrer - the referring URL (may be NULL)
- * @param forceJSEnabled - forces JavaScript to be enabled for 'javascript:'
- * URLs, even if the user currently has JavaScript disabled (usually
- * specify PR_FALSE)
- * @param postHeadersLength - the length of postHeaders (if non-NULL)
- * @param postHeaders - the headers to POST. Must be in the form of
- * "HeaderName: HeaderValue\r\n". Each header, including the last,
- * must be followed by "\r\n". NULL specifies that there are no
- * post headers
- * @result - NS_OK if this operation was successful
- */
- %{C++
- NS_IMETHOD
- PostURL(nsISupports* pluginInst,
- const char* url,
- PRUint32 postDataLen,
- const char* postData,
- PRBool isFile = PR_FALSE,
- const char* target = NULL,
- nsIPluginStreamListener* streamListener = NULL,
- const char* altHost = NULL,
- const char* referrer = NULL,
- PRBool forceJSEnabled = PR_FALSE,
- PRUint32 postHeadersLength = 0,
- const char* postHeaders = NULL) = 0;
- %}
-
- /**
- * Persistently register a plugin with the plugin
- * manager. aMimeTypes, aMimeDescriptions, and aFileExtensions are
- * parallel arrays that contain information about the MIME types
- * that the plugin supports.
- *
- * @param aCID - the plugin's CID
- * @param aPluginName - the plugin's name
- * @param aDescription - a description of the plugin
- * @param aMimeTypes - an array of MIME types that the plugin
- * is prepared to handle
- * @param aMimeDescriptions - an array of descriptions for the
- * MIME types that the plugin can handle.
- * @param aFileExtensions - an array of file extensions for
- * the MIME types that the plugin can handle.
- * @param aCount - the number of elements in the aMimeTypes,
- * aMimeDescriptions, and aFileExtensions arrays.
- * @result - NS_OK if the operation was successful.
- */
- [noscript] void RegisterPlugin(in REFNSIID aCID,
- in string aPluginName,
- in string aDescription,
- in nativeChar aMimeTypes,
- in nativeChar aMimeDescriptions,
- in nativeChar aFileExtensions,
- in long aCount);
-
- /**
- * Unregister a plugin from the plugin manager
- *
- * @param aCID the CID of the plugin to unregister.
- * @result - NS_OK if the operation was successful.
- */
- [noscript] void UnregisterPlugin(in REFNSIID aCID);
-
- %{C++
- /**
- * Fetches a URL, with Headers
- * @see GetURL. Identical except for additional params headers and
- * headersLen
- * @param getHeadersLength - the length of getHeaders (if non-NULL)
- * @param getHeaders - the headers to GET. Must be in the form of
- * "HeaderName: HeaderValue\r\n". Each header, including the last,
- * must be followed by "\r\n". NULL specifies that there are no
- * get headers
- * @result - NS_OK if this operation was successful
- */
- NS_IMETHOD
- GetURLWithHeaders(nsISupports* pluginInst,
- const char* url,
- const char* target = NULL,
- nsIPluginStreamListener* streamListener = NULL,
- const char* altHost = NULL,
- const char* referrer = NULL,
- PRBool forceJSEnabled = PR_FALSE,
- PRUint32 getHeadersLength = 0,
- const char* getHeaders = NULL) = 0;
- %}
- };
-